package com.zp.qualitypractice.list;

import android.support.v7.util.DiffUtil;

import java.util.List;

/**
 * Created by izp on 2017/4/18.
 *
 */

public class DiffCallBack<T> extends DiffUtil.Callback{
    private List<T> oldData;
    private List<T> newData;

    public DiffCallBack(List<T> oldData, List<T> newData) {
        this.oldData = oldData;
        this.newData = newData;
    }

    @Override
    public int getOldListSize() {
        return oldData.size();
    }

    @Override
    public int getNewListSize() {
        return newData.size();
    }

    /**
     * @param oldItemPosition
     * @param newItemPosition
     * @return
     * 这个应该是比较类比较好，tiemId或者元素的id
     */
    @Override
    public boolean areItemsTheSame(int oldItemPosition, int newItemPosition) {
        return oldData.get(oldItemPosition).equals(newData.get(newItemPosition));
    }

    /**
     * @param oldItemPosition
     * @param newItemPosition
     * @return
     * 这个是比较内容，可操作空间比较大，同个元素的不同的内容
     */
    @Override
    public boolean areContentsTheSame(int oldItemPosition, int newItemPosition) {
        return oldData.get(oldItemPosition).equals(newData.get(newItemPosition));
    }
}
